package impleDao;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import modelo.Pelicula;
import dao.PeliculaDAO;

public class PeliculaImple extends HibernateDaoSupport implements PeliculaDAO 
{

	private static Session session;
	private static Transaction tx;
	
	private void iniciaOperacion() throws HibernateException {
		 	session = getSession();
		 	tx = session.beginTransaction();
		 }

		 private void manejaExcepcion(HibernateException he) throws HibernateException {
			 tx.rollback();
			 throw new HibernateException("ERROR en la capa de acceso a datos", he);
		 }
	
	@Override
	public List<Pelicula> findByGenero(int idGenero)
	{
		// TODO Auto-generated method stub
		List<Pelicula> lst=null;
		try{
			iniciaOperacion();
			lst=session.createQuery("from modelo.Pelicula p inner join fetch p.genero g " +
					"where p.genero =:genero ")
					.setInteger("genero",idGenero)
					.list();
			/*lst=session.createQuery("from modelo.Pelicula p where p.genero = :genero")
					.setEntity("genero",idGenero)
					.list();*/
		}finally{
			session.close();
		}
		return lst;
	}

	

}
